// 导入依赖包
import koa from "koa";
// 导入 服务器端口
import { appPort } from "./config/appSetting.js";
// 导入 路由依赖包
import Router from "koa-router";
// 导入 同步数据库 函数
import { syncDB } from "./db/index.js";
// 跨域 依赖包
import cors from "@koa/cors";
// 导入 老师 模型
import { Teacher } from "./modle/Teacher.js";

// 同步数据库
syncDB();

// 创建 koa 实例
const app = new koa();

// 创建 路由 实例
const router = new Router();

// 使用 跨域 中间件 解决跨域问题
app.use(
  cors({
    // 允许的前端域名和端口
    origin: "http://localhost:5500",
    // 允许的 HTTP 方法
    methods: ["GET", "POST", "PUT", "DELETE"],
    // 允许的请求头
    allowedHeaders: ["Content-Type", "Authorization"],
  })
);

// 使用中间件注册路由
app.use(async (ctx, next) => {
  // 请求的路径
  console.log(ctx.url);

  // 执行下一个中间件
  await next();
});

// 查询所有老师信息
router.get("/teachers", async (ctx, next) => {
  // 查询所有老师信息
  const teachers = await Teacher.findAll();

  // 如果有查询到老师信息就响应
  if (teachers) {
    // 响应 老师对象列表 给页面
    ctx.body = teachers;
    // 指定 响应数据的格式
    ctx.type = "application/json";
    // 成功状态码 200
    ctx.status = 200;
  } else {
    // 失败状态码 500
    ctx.status = 500;
  }

  // 执行下一个中间件
  await next();
});

// 使用中间件
app.use(router.routes());

// 监听服务器端口
app.listen(appPort);

// 当前服务器运行地址
console.log(`当前服务器运行地址：http://localhost:${appPort}`);
